package com.example.jrfwcwgl.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 收付款支付订单及业务关联表
 * </p>
 *
 * @author 龚梦
 * @since 2021-04-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class TCwPayOrderDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 支付订单ID
     */
    private Long payOrderId;

    /**
     * 支付订单号
     */
    private String payOrderNo;

    /**
     * 业务订单ID(收付款计划)
     */
    private Long businessOrderPlanId;

    /**
     * 业务订单号(收付款计划)
     */
    private String businessOrderPlanNo;

    /**
     * 操作类型：1：充值（企业充值），2：提现（企业提现），3：收款（企业收款计划），4：付款（企付款款计划）
     */
    private Integer businessOrderType;

    /**
     * 收付款计划金额
     */
    private BigDecimal businessOrderAmount;

    /**
     * 商户id（由于暂时无法确定一次支付是否可能包含多个商户，故商户信息暂时加在支付订单明细中）	不同于流水表中的USERID，这里只记录相关的商户ID（流水表中的userid有可能是商户ID，也可能是租客ID）
     */
    private Long businessId;

    /**
     * 商户名
     */
    private String businessName;

    /**
     * 商户可结算金额（入金的时候，可以结算给商户虚拟账户的金额，比如商户充值金额，租户缴费金额，对账和结算时候用, 为0的时候，表示没有结算金额）
     */
    private BigDecimal canClearingAmount;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 预留字段1
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reserve1;

    /**
     * 预留字段2
     */
    private Integer reserve2;

    /**
     * 预留字段3
     */
    private String reserve3;

    /**
     * 预留字段4
     */
    private String reserve4;

    /**
     * 预留字段5
     */
    private String reserve5;

    /**
     * 删除标识。0:未删除，1：删除
     */
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 更新用户ID
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;


}
